数组 array

-定义数组的格式 var <varName> [n]<type> , n 必须 >=0
-数组长度也是类型的一部分,因此具有不同长度的数组的不同类型
-注意区分指向数组的指针和指针数组
-数组在 Go 中为值类型
-数组直接可以使用 ==!= 进行比较,但不可以使用 <>
-可以使用 new 来自创建数组,此方法返回一个指向数组的指针
-Go 支持多维数组

  1. // [1, 2, 3]
  2. a := [3]int{1, 2, 3}
  3. // 确定长度时可以使用 ... 放在 [] 里
  4. a := [...]int{1, 2, 3}
  5. // 索引值指定 [0 0 0 0 2]
  6. a := [...]int{4: 2}
  7. //指向数组的指针
  8. a := [...]int{4: 2}
  9. var p *[5]int = &a
  10. //指针数组
  11. x, y := 1, 2
  12. a := [...]*int{&x, &y}
  13. //结果为 [0xf840036028 0xf840168928] 这样的指针数组
  14. fmt.Println(a)
  15. //使用 new 创建数组
  16. p := new ([10]int)
  17. //得到一个指向数组的指针
  18. fmt.Println(p)
  19. //可以使用此指针操作数组
  20. p[2] = 6
  21. //多维数组
  22. a := [2][3]int{
  23. {1:1},
  24. {2, 2, 2}}
  25. //冒泡排序
  26. a := [...]int{5, 9, 6, 8, 12, 42}
  27. fmt.Println(a)
  28. num := len(a)
  29. for i := 0; i < num; i++ {
  30. for j := i + 1; j < num; j++ {
  31. if a[i] < a[j] {
  32. temp := a[i]
  33. a[i] = a[j]
  34. a[j] = temp
  35. }
  36. }
  37. }
  38. fmt.Println(a)